const express = require('express')
const path = require('path')
const bodyPparser = require('body-parser')
const route = require('./routers/index')
const { createProxyMiddleware } = require('http-proxy-middleware');
/* 首先，body-parser 中间件的作用是给 req 添加属性 body，值为对象，以键值对的形式存储请求体中的参数；
其次，body-parser 只处理 POST 请求；
最后，body-parser 模块导出一个对象，上面有两个方法 urlencoded 和 json，分别处理表单提交和 json 格式的请求体参数。 */
const app = express()


// API代理 生产的时候会执行，去掉api
app.use('/api', createProxyMiddleware({
    target: 'http://10.28.114.213:8000/',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }));

app.use((req, res, next) => {
    // 允许的域，* 表示允许任何域
    res.header('Access-Control-Allow-Origin', '*');
    // 允许的方法
    res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
    // 允许的头信息字段
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
   
    // 处理预请求的OPTIONS请求
    if (req.method === 'OPTIONS') {
      res.sendStatus(200);
    } else {
      next();
    }
  });


app.use(bodyPparser.json())
app.use(route)
const staticPath = path.join(__dirname,'..','/dist')
app.use(express.static(staticPath))

app.listen(8000,(err)=> {
    if (err) {
        console.log(err)
        return
    }
    console.log('成功启动服务http://localhost:8000')
})